SuaNhanVienPanel = Ext.extend(AbstractPanel, {
	layout : {
        type : 'vbox',
        align : 'stretch'
    },
    
    height : 900,
    
	initComponent : function() {
		this.formLabel = new Ext.form.Label({
			cls : 'main-title',
			text : lang.text.menu.suaNv.toUpperCase()
		});
		
		this.formLabelContainer = new Ext.Container({
			cls : 'field-align-center',
			items : [this.formLabel]
		});
		
		this.luuBtn = new Ext.Button({
			width : 70,
			text : lang.text.luu
		});
		
		this.btnBar = new Ext.Container({
			layout : 'hbox',
			items : [this.luuBtn]
		});
		
		this.nhanVien = new Ext.form.ComboBox({
			name : 'nv',
			itemCls : 'thientan-sua-nv-nhanvien-cb',
			hiddenName : 'id',
            fieldLabel : lang.text.nv.maNV,
            width : 356,
            editable : true,
            forceSelection : true,
            mode : 'local',
            triggerAction : 'all',
            valueField : 'id',
            displayField : 'maNv',
            store : new Ext.data.JsonStore({
                	fields : ['id', 'maNv'],
                	sortInfo : {
                		field : 'maNv'
                	}
            }),
			plugins : new CustomizedFieldPlugin()
		});
		
		this.thongTinNVPanel = new ThongTinNhanVienFieldSet({
			haveMaNv : false,
			initDataUrl : 'nhanVien/initDataWithListNhanVien',
			parentContainer : this
		});
		
		this.detailContainer = new Ext.Container({
			width : 500,
			layout : 'customizedlayout',
			height : 500,
			labelWidth : 100,
			items : [this.nhanVien, this.thongTinNVPanel, this.btnBar]
		});
		
		this.items = [this.formLabelContainer, {xtype : 'spacer', height : 20},this.detailContainer];
		
		SuaNhanVienPanel.superclass.initComponent.call(this);
	},
	
	afterRender : function(){
		SuaNhanVienPanel.superclass.afterRender.call(this);
		
		this.nhanVien.on('afterrender', function(){
			var f = this.nhanVien.getEl();
            f.focus.defer(200, f);
		}, this);
		this.nhanVien.on('select', this.onChangeMaNv, this);
	},
	
	afterInitData : function(response){
		this.nhanVien.store.loadData(response.nhanVien);
	},
	
	onChangeMaNv : function(){
		Ext.Ajax.request({
            url : 'nhanVien/loadNhanVien',
            method : 'GET',
            scope : this,
            params : {id : this.nhanVien.getValue()},
            success : function(response, opts){
                var result = Ext.decode(response.responseText); 
                this.thongTinNVPanel.hoTen.setValue(result.hoTen);
                this.thongTinNVPanel.password.setValue(result.password);
                this.thongTinNVPanel.loaiNv.setValue(result['loaiNhanVien']);
                this.thongTinNVPanel.doiTruong.setValue(result['doiTruong-id']);
                this.thongTinNVPanel.daKichHoat.setValue(result.kichHoat);
                if (result['loaiNhanVien'] == lang.text.banHang) {
                	this.thongTinNVPanel.doiTruong.enable();
				} else {
					this.thongTinNVPanel.doiTruong.disable();
				}
            }, 
            failure : Ext.emptyFn
        }, this);
	},
	
	save : function(){
		var r = this.nhanVien.findRecord('id', this.nhanVien.getValue());
		if(r){
			var maNv = r.data['maNv'];
			
			this.getForm().submit({
			    me : this,
			    url : 'nhanVien/save',
			    waitMsg: lang.text.saving,
			    waitMsgTarget : true,
			    params : {'maNv' : maNv},
	            success : function(opts, response) {
	            	var result = Ext.decode(response.response.responseText);
	            	if (result.success) {
	            		this.notifyMessage(result.msg);
					} 
	            },
	            failure : function(opts, response) {
	            	var result = Ext.decode(response.response.responseText);
	            	this.notifyMessage(result.msg);
	            },
	            scope : this
	        }, this);
		} else {
			this.notifyMessage({action:'error', msg:lang.msg.mustSelectOneNv});
		}
		
	}
});